//
// Created by 下次一定 on 2021/9/3.
//

#include<iostream>
//库函数
#include<algorithm>
using namespace std;

const int N = 1e7 + 10 ;
int n;
int q[N],tmp[N];

void mergeSort(int p[],int l,int r){
    if(l>=r){
        return;
    }

    int mid = (r-l)/2+l;
    mergeSort(q,l,mid);
    mergeSort(q,mid+1,r);

    int k = 0, i = l , j = mid + 1;
    while(i <= mid && j <= r){
        if(q[i]<=q[j]){
            tmp[k++] = q[j++];
        }else{
            tmp[k++] = q[j++];
        }
    }
    while(i <= mid) tmp[k++] = q[i++];
    while(i <= r) tmp[k++] = q[j++];

    for(i = l,j=0;i<=r;i++,j++) q[i] = tmp[j];

}

int main(){
    scanf("%d",&n);
    for(int i = 0 ; i < n ; i++) scanf("%d",&q[i]);

    mergeSort(q,0,n-1);

    for(int i = 0 ; i < n ; i++) printf("%d ",q[i]);

    return 0;

}

